package abd.pr1.Mappers;

import java.sql.ResultSet;
import java.sql.SQLException;

import javax.sql.DataSource;

import abd.pr1.Models.VotoEpisodio;
import abd.pr1.Models.VotoSerie;

public class VotosSeriesMapper extends AbstractMapper<VotoSerie, ClaveVotoSerie>{

	private static final String[] VOTOS_SERIES_KEY_COLUMN_NAMES = new String[] { "id_usuario", "id_serie" };
	private static final String[] VOTOS_SERIES_COLUMN_NAMES = new String[] { "id_usuario", "id_serie", "voto"};
	private static final String VOTOS_SERIES_TABLE_NAME = "votos_series";
	
	public VotosSeriesMapper(DataSource ds) {
		super(ds);
		// TODO Auto-generated constructor stub
	}

	@Override
	protected String getTableName() {
		return VOTOS_SERIES_TABLE_NAME;
	}

	@Override
	protected String[] getColumnNames() {
		return VOTOS_SERIES_COLUMN_NAMES;
	}

	@Override
	protected Object[] serializeObject(VotoSerie object) {
		return new Object[] { object.getIdUsuario(),object.getIdSerie(), object.getVoto()};
	}

	@Override
	protected String[] getKeyColumnNames() {
		return VOTOS_SERIES_KEY_COLUMN_NAMES;
	}

	@Override
	protected Object[] serializeKey(ClaveVotoSerie key) {
		return new Object[] { key.getId_usuario(), key.getId_serie()};
	}

	@Override
	protected VotoSerie buildObject(ResultSet rs) throws SQLException {
		Integer id_usuario = rs.getInt("id_usuario");
		Integer id_serie = rs.getInt("id_serie");
		Integer voto = rs.getInt("voto");
		
		return new VotoSerie(id_usuario, id_serie, voto);
	}

	@Override
	protected ClaveVotoSerie getKey(VotoSerie object) {
		return new ClaveVotoSerie(object.getIdUsuario(), object.getIdSerie());
	}

	@Override
	protected boolean hasAutoincrementKey() {
		// TODO Auto-generated method stub
		return false;
	}

	@Override
	void updateKeys(ResultSet rs, VotoSerie object) throws SQLException {
		// TODO Auto-generated method stub
		
	}

	
	
}
